﻿using System;

namespace UnityEngine.PostProcessing
{
	// Token: 0x020000E5 RID: 229
	[Serializable]
	public class BuiltinDebugViewsModel : PostProcessingModel
	{
		// Token: 0x17000089 RID: 137
		// (get) Token: 0x06000600 RID: 1536 RVA: 0x00024CCC File Offset: 0x00022ECC
		// (set) Token: 0x06000601 RID: 1537 RVA: 0x00024CD4 File Offset: 0x00022ED4
		public BuiltinDebugViewsModel.Settings settings
		{
			get
			{
				return this.m_Settings;
			}
			set
			{
				this.m_Settings = value;
			}
		}

		// Token: 0x1700008A RID: 138
		// (get) Token: 0x06000602 RID: 1538 RVA: 0x00024CE0 File Offset: 0x00022EE0
		public bool willInterrupt
		{
			get
			{
				return !this.IsModeActive(BuiltinDebugViewsModel.Mode.None) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.EyeAdaptation) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.PreGradingLog) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.LogLut) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.UserLut);
			}
		}

		// Token: 0x06000603 RID: 1539 RVA: 0x00024D20 File Offset: 0x00022F20
		public override void Reset()
		{
			this.settings = BuiltinDebugViewsModel.Settings.defaultSettings;
		}

		// Token: 0x06000604 RID: 1540 RVA: 0x00024D30 File Offset: 0x00022F30
		public bool IsModeActive(BuiltinDebugViewsModel.Mode mode)
		{
			return this.m_Settings.mode == mode;
		}

		// Token: 0x04000578 RID: 1400
		[SerializeField]
		private BuiltinDebugViewsModel.Settings m_Settings = BuiltinDebugViewsModel.Settings.defaultSettings;

		// Token: 0x020000E6 RID: 230
		[Serializable]
		public struct DepthSettings
		{
			// Token: 0x1700008B RID: 139
			// (get) Token: 0x06000605 RID: 1541 RVA: 0x00024D40 File Offset: 0x00022F40
			public static BuiltinDebugViewsModel.DepthSettings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.DepthSettings
					{
						scale = 1f
					};
				}
			}

			// Token: 0x04000579 RID: 1401
			[Tooltip("Scales the camera far plane before displaying the depth map.")]
			[Range(0f, 1f)]
			public float scale;
		}

		// Token: 0x020000E7 RID: 231
		[Serializable]
		public struct MotionVectorsSettings
		{
			// Token: 0x1700008C RID: 140
			// (get) Token: 0x06000606 RID: 1542 RVA: 0x00024D64 File Offset: 0x00022F64
			public static BuiltinDebugViewsModel.MotionVectorsSettings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.MotionVectorsSettings
					{
						sourceOpacity = 1f,
						motionImageOpacity = 0f,
						motionImageAmplitude = 16f,
						motionVectorsOpacity = 1f,
						motionVectorsResolution = 24,
						motionVectorsAmplitude = 64f
					};
				}
			}

			// Token: 0x0400057A RID: 1402
			[Tooltip("Opacity of the source render.")]
			[Range(0f, 1f)]
			public float sourceOpacity;

			// Token: 0x0400057B RID: 1403
			[Tooltip("Opacity of the per-pixel motion vector colors.")]
			[Range(0f, 1f)]
			public float motionImageOpacity;

			// Token: 0x0400057C RID: 1404
			[Tooltip("Because motion vectors are mainly very small vectors, you can use this setting to make them more visible.")]
			[Min(0f)]
			public float motionImageAmplitude;

			// Token: 0x0400057D RID: 1405
			[Tooltip("Opacity for the motion vector arrows.")]
			[Range(0f, 1f)]
			public float motionVectorsOpacity;

			// Token: 0x0400057E RID: 1406
			[Range(8f, 64f)]
			[Tooltip("The arrow density on screen.")]
			public int motionVectorsResolution;

			// Token: 0x0400057F RID: 1407
			[Min(0f)]
			[Tooltip("Tweaks the arrows length.")]
			public float motionVectorsAmplitude;
		}

		// Token: 0x020000E8 RID: 232
		public enum Mode
		{
			// Token: 0x04000581 RID: 1409
			None,
			// Token: 0x04000582 RID: 1410
			Depth,
			// Token: 0x04000583 RID: 1411
			Normals,
			// Token: 0x04000584 RID: 1412
			MotionVectors,
			// Token: 0x04000585 RID: 1413
			AmbientOcclusion,
			// Token: 0x04000586 RID: 1414
			EyeAdaptation,
			// Token: 0x04000587 RID: 1415
			FocusPlane,
			// Token: 0x04000588 RID: 1416
			PreGradingLog,
			// Token: 0x04000589 RID: 1417
			LogLut,
			// Token: 0x0400058A RID: 1418
			UserLut
		}

		// Token: 0x020000E9 RID: 233
		[Serializable]
		public struct Settings
		{
			// Token: 0x1700008D RID: 141
			// (get) Token: 0x06000607 RID: 1543 RVA: 0x00024DC0 File Offset: 0x00022FC0
			public static BuiltinDebugViewsModel.Settings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.Settings
					{
						mode = BuiltinDebugViewsModel.Mode.None,
						depth = BuiltinDebugViewsModel.DepthSettings.defaultSettings,
						motionVectors = BuiltinDebugViewsModel.MotionVectorsSettings.defaultSettings
					};
				}
			}

			// Token: 0x0400058B RID: 1419
			public BuiltinDebugViewsModel.Mode mode;

			// Token: 0x0400058C RID: 1420
			public BuiltinDebugViewsModel.DepthSettings depth;

			// Token: 0x0400058D RID: 1421
			public BuiltinDebugViewsModel.MotionVectorsSettings motionVectors;
		}
	}
}
